import axios from "axios";
import ElementUI from "element-ui";
import router from "@/router"; // 添加这一行导入路由实例

const request = axios.create({
  baseURL: process.env.VUE_APP_BASE_PATH,
  timeout: 8000,
});


// request 拦截器
request.interceptors.request.use(
  (config) => {
    // config.headers["Content-Type"] = "application/json;charset=utf-8";
    // 若添加了jwt验证,则开启
    // if (user) {
    //     config.headers['token'] = user.token;  // 设置请求头
    // }
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

// response 拦截器
request.interceptors.response.use(
  (response) => {
    let res = response.data;
    // 如果是返回的文件
    if (response.config.responseType === "blob") {
      return res;
    }
    // 兼容服务端返回的字符串数据
    if (typeof res === "string") {
      res = res ? JSON.parse(res) : res;
    }
    // 当权限验证不通过的时候给出提示
    if (res.code === "401") {
      ElementUI.Message({
        message: res.msg,
        type: "error",
      });
      router.push("/login"); // 现在 router 已正确定义
    }
    return res;
  },
  (error) => {
    console.log("err" + error); // for debug
    return Promise.reject(error);
  }
);

export default request;
